// $ANTLR 3.3 Nov 30, 2010 12:50:56 /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g 2011-05-24 09:27:45

    package lang4j.parser.generated;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

public class Lang4jLexer extends Lexer {
    public static final int EOF=-1;
    public static final int T__31=31;
    public static final int T__32=32;
    public static final int T__33=33;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__36=36;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__44=44;
    public static final int T__45=45;
    public static final int T__46=46;
    public static final int T__47=47;
    public static final int T__48=48;
    public static final int T__49=49;
    public static final int T__50=50;
    public static final int T__51=51;
    public static final int T__52=52;
    public static final int T__53=53;
    public static final int T__54=54;
    public static final int MULTI_LINE_STRING=4;
    public static final int IDENT=5;
    public static final int STRING_LITERAL=6;
    public static final int CHAR_LITERAL=7;
    public static final int TRUE=8;
    public static final int FALSE=9;
    public static final int NUM_LONG=10;
    public static final int NUM_FLOAT=11;
    public static final int NUM_INT=12;
    public static final int NUM_DOUBLE=13;
    public static final int DOT=14;
    public static final int NEWLINE=15;
    public static final int WS=16;
    public static final int ESCAPE_SEQUENCE=17;
    public static final int UNICODE_ESCAPE=18;
    public static final int OCTAL_ESCAPE=19;
    public static final int HEX_DIGIT=20;
    public static final int LINE_COMMENT=21;
    public static final int ML_COMMENT=22;
    public static final int HEX_LITERAL=23;
    public static final int OCTAL_LITERAL=24;
    public static final int DECIMAL_LITERAL=25;
    public static final int Exponent=26;
    public static final int FloatTypeSuffix=27;
    public static final int IntegerTypeSuffix=28;
    public static final int EXPONENT=29;
    public static final int FLOAT_SUFFIX=30;

    // delegates
    // delegators

    public Lang4jLexer() {;} 
    public Lang4jLexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public Lang4jLexer(CharStream input, RecognizerSharedState state) {
        super(input,state);

    }
    public String getGrammarFileName() { return "/Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g"; }

    // $ANTLR start "T__31"
    public final void mT__31() throws RecognitionException {
        try {
            int _type = T__31;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:7:7: ( 'grammarName' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:7:9: 'grammarName'
            {
            match("grammarName"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__31"

    // $ANTLR start "T__32"
    public final void mT__32() throws RecognitionException {
        try {
            int _type = T__32;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:8:7: ( ':' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:8:9: ':'
            {
            match(':'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__32"

    // $ANTLR start "T__33"
    public final void mT__33() throws RecognitionException {
        try {
            int _type = T__33;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:9:7: ( ';' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:9:9: ';'
            {
            match(';'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__33"

    // $ANTLR start "T__34"
    public final void mT__34() throws RecognitionException {
        try {
            int _type = T__34;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:10:7: ( 'package' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:10:9: 'package'
            {
            match("package"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__34"

    // $ANTLR start "T__35"
    public final void mT__35() throws RecognitionException {
        try {
            int _type = T__35;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:11:7: ( 'list' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:11:9: 'list'
            {
            match("list"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__35"

    // $ANTLR start "T__36"
    public final void mT__36() throws RecognitionException {
        try {
            int _type = T__36;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:12:7: ( '(' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:12:9: '('
            {
            match('('); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__36"

    // $ANTLR start "T__37"
    public final void mT__37() throws RecognitionException {
        try {
            int _type = T__37;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:13:7: ( ')' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:13:9: ')'
            {
            match(')'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__37"

    // $ANTLR start "T__38"
    public final void mT__38() throws RecognitionException {
        try {
            int _type = T__38;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:14:7: ( '*' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:14:9: '*'
            {
            match('*'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__38"

    // $ANTLR start "T__39"
    public final void mT__39() throws RecognitionException {
        try {
            int _type = T__39;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:15:7: ( '^' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:15:9: '^'
            {
            match('^'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__39"

    // $ANTLR start "T__40"
    public final void mT__40() throws RecognitionException {
        try {
            int _type = T__40;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:16:7: ( 'REFERENCE' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:16:9: 'REFERENCE'
            {
            match("REFERENCE"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__40"

    // $ANTLR start "T__41"
    public final void mT__41() throws RecognitionException {
        try {
            int _type = T__41;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:17:7: ( 'enum' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:17:9: 'enum'
            {
            match("enum"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__41"

    // $ANTLR start "T__42"
    public final void mT__42() throws RecognitionException {
        try {
            int _type = T__42;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:18:7: ( '|' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:18:9: '|'
            {
            match('|'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__42"

    // $ANTLR start "T__43"
    public final void mT__43() throws RecognitionException {
        try {
            int _type = T__43;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:19:7: ( 'interface' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:19:9: 'interface'
            {
            match("interface"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__43"

    // $ANTLR start "T__44"
    public final void mT__44() throws RecognitionException {
        try {
            int _type = T__44;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:20:7: ( 'key' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:20:9: 'key'
            {
            match("key"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__44"

    // $ANTLR start "T__45"
    public final void mT__45() throws RecognitionException {
        try {
            int _type = T__45;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:21:7: ( 'class' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:21:9: 'class'
            {
            match("class"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__45"

    // $ANTLR start "T__46"
    public final void mT__46() throws RecognitionException {
        try {
            int _type = T__46;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:22:7: ( '[' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:22:9: '['
            {
            match('['); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__46"

    // $ANTLR start "T__47"
    public final void mT__47() throws RecognitionException {
        try {
            int _type = T__47;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:23:7: ( ']' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:23:9: ']'
            {
            match(']'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__47"

    // $ANTLR start "T__48"
    public final void mT__48() throws RecognitionException {
        try {
            int _type = T__48;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:24:7: ( 'CHAR_LITERAL' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:24:9: 'CHAR_LITERAL'
            {
            match("CHAR_LITERAL"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__48"

    // $ANTLR start "T__49"
    public final void mT__49() throws RecognitionException {
        try {
            int _type = T__49;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:25:7: ( 'LITERAL' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:25:9: 'LITERAL'
            {
            match("LITERAL"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__49"

    // $ANTLR start "T__50"
    public final void mT__50() throws RecognitionException {
        try {
            int _type = T__50;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:26:7: ( 'MULTI_LINE_LITERAL' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:26:9: 'MULTI_LINE_LITERAL'
            {
            match("MULTI_LINE_LITERAL"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__50"

    // $ANTLR start "T__51"
    public final void mT__51() throws RecognitionException {
        try {
            int _type = T__51;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:27:7: ( 'INT_LITERAL' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:27:9: 'INT_LITERAL'
            {
            match("INT_LITERAL"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__51"

    // $ANTLR start "T__52"
    public final void mT__52() throws RecognitionException {
        try {
            int _type = T__52;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:28:7: ( 'IDENTIFIER' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:28:9: 'IDENTIFIER'
            {
            match("IDENTIFIER"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__52"

    // $ANTLR start "T__53"
    public final void mT__53() throws RecognitionException {
        try {
            int _type = T__53;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:29:7: ( 'DOUBLE_LITERAL' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:29:9: 'DOUBLE_LITERAL'
            {
            match("DOUBLE_LITERAL"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__53"

    // $ANTLR start "T__54"
    public final void mT__54() throws RecognitionException {
        try {
            int _type = T__54;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:30:7: ( 'BOOLEAN_LITERAL' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:30:9: 'BOOLEAN_LITERAL'
            {
            match("BOOLEAN_LITERAL"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__54"

    // $ANTLR start "DOT"
    public final void mDOT() throws RecognitionException {
        try {
            int _type = DOT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:463:5: ( '.' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:463:7: '.'
            {
            match('.'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DOT"

    // $ANTLR start "TRUE"
    public final void mTRUE() throws RecognitionException {
        try {
            int _type = TRUE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:465:6: ( 'true' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:465:8: 'true'
            {
            match("true"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "TRUE"

    // $ANTLR start "FALSE"
    public final void mFALSE() throws RecognitionException {
        try {
            int _type = FALSE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:466:7: ( 'false' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:466:8: 'false'
            {
            match("false"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "FALSE"

    // $ANTLR start "NEWLINE"
    public final void mNEWLINE() throws RecognitionException {
        try {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:469:17: ( ( '\\r' )? '\\n' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:469:18: ( '\\r' )? '\\n'
            {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:469:18: ( '\\r' )?
            int alt1=2;
            int LA1_0 = input.LA(1);

            if ( (LA1_0=='\r') ) {
                alt1=1;
            }
            switch (alt1) {
                case 1 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:469:18: '\\r'
                    {
                    match('\r'); 

                    }
                    break;

            }

            match('\n'); 

            }

        }
        finally {
        }
    }
    // $ANTLR end "NEWLINE"

    // $ANTLR start "WS"
    public final void mWS() throws RecognitionException {
        try {
            int _type = WS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:472:5: ( ( ' ' | '\\t' | NEWLINE )+ )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:472:9: ( ' ' | '\\t' | NEWLINE )+
            {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:472:9: ( ' ' | '\\t' | NEWLINE )+
            int cnt2=0;
            loop2:
            do {
                int alt2=4;
                switch ( input.LA(1) ) {
                case ' ':
                    {
                    alt2=1;
                    }
                    break;
                case '\t':
                    {
                    alt2=2;
                    }
                    break;
                case '\n':
                case '\r':
                    {
                    alt2=3;
                    }
                    break;

                }

                switch (alt2) {
            	case 1 :
            	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:472:10: ' '
            	    {
            	    match(' '); 

            	    }
            	    break;
            	case 2 :
            	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:472:14: '\\t'
            	    {
            	    match('\t'); 

            	    }
            	    break;
            	case 3 :
            	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:472:19: NEWLINE
            	    {
            	    mNEWLINE(); 

            	    }
            	    break;

            	default :
            	    if ( cnt2 >= 1 ) break loop2;
                        EarlyExitException eee =
                            new EarlyExitException(2, input);
                        throw eee;
                }
                cnt2++;
            } while (true);

            _channel=HIDDEN;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WS"

    // $ANTLR start "CHAR_LITERAL"
    public final void mCHAR_LITERAL() throws RecognitionException {
        try {
            int _type = CHAR_LITERAL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:477:5: ( '\\'' ( ESCAPE_SEQUENCE | ~ ( '\\'' | '\\\\' ) ) '\\'' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:477:9: '\\'' ( ESCAPE_SEQUENCE | ~ ( '\\'' | '\\\\' ) ) '\\''
            {
            match('\''); 
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:477:14: ( ESCAPE_SEQUENCE | ~ ( '\\'' | '\\\\' ) )
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0=='\\') ) {
                alt3=1;
            }
            else if ( ((LA3_0>='\u0000' && LA3_0<='&')||(LA3_0>='(' && LA3_0<='[')||(LA3_0>=']' && LA3_0<='\uFFFF')) ) {
                alt3=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;
            }
            switch (alt3) {
                case 1 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:477:16: ESCAPE_SEQUENCE
                    {
                    mESCAPE_SEQUENCE(); 

                    }
                    break;
                case 2 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:477:34: ~ ( '\\'' | '\\\\' )
                    {
                    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                        input.consume();

                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        recover(mse);
                        throw mse;}


                    }
                    break;

            }

            match('\''); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CHAR_LITERAL"

    // $ANTLR start "STRING_LITERAL"
    public final void mSTRING_LITERAL() throws RecognitionException {
        try {
            int _type = STRING_LITERAL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:482:5: ( '\"' ( ESCAPE_SEQUENCE | ~ ( '\\\\' | '\"' ) )* '\"' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:482:8: '\"' ( ESCAPE_SEQUENCE | ~ ( '\\\\' | '\"' ) )* '\"'
            {
            match('\"'); 
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:482:12: ( ESCAPE_SEQUENCE | ~ ( '\\\\' | '\"' ) )*
            loop4:
            do {
                int alt4=3;
                int LA4_0 = input.LA(1);

                if ( (LA4_0=='\\') ) {
                    alt4=1;
                }
                else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
                    alt4=2;
                }


                switch (alt4) {
            	case 1 :
            	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:482:14: ESCAPE_SEQUENCE
            	    {
            	    mESCAPE_SEQUENCE(); 

            	    }
            	    break;
            	case 2 :
            	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:482:31: ~ ( '\\\\' | '\"' )
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    break loop4;
                }
            } while (true);

            match('\"'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "STRING_LITERAL"

    // $ANTLR start "ESCAPE_SEQUENCE"
    public final void mESCAPE_SEQUENCE() throws RecognitionException {
        try {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:487:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UNICODE_ESCAPE | OCTAL_ESCAPE )
            int alt5=3;
            int LA5_0 = input.LA(1);

            if ( (LA5_0=='\\') ) {
                switch ( input.LA(2) ) {
                case '\"':
                case '\'':
                case '\\':
                case 'b':
                case 'f':
                case 'n':
                case 'r':
                case 't':
                    {
                    alt5=1;
                    }
                    break;
                case 'u':
                    {
                    alt5=2;
                    }
                    break;
                case '0':
                case '1':
                case '2':
                case '3':
                case '4':
                case '5':
                case '6':
                case '7':
                    {
                    alt5=3;
                    }
                    break;
                default:
                    NoViableAltException nvae =
                        new NoViableAltException("", 5, 1, input);

                    throw nvae;
                }

            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;
            }
            switch (alt5) {
                case 1 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:487:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
                    {
                    match('\\'); 
                    if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {
                        input.consume();

                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        recover(mse);
                        throw mse;}


                    }
                    break;
                case 2 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:488:9: UNICODE_ESCAPE
                    {
                    mUNICODE_ESCAPE(); 

                    }
                    break;
                case 3 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:489:9: OCTAL_ESCAPE
                    {
                    mOCTAL_ESCAPE(); 

                    }
                    break;

            }
        }
        finally {
        }
    }
    // $ANTLR end "ESCAPE_SEQUENCE"

    // $ANTLR start "OCTAL_ESCAPE"
    public final void mOCTAL_ESCAPE() throws RecognitionException {
        try {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:494:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
            int alt6=3;
            int LA6_0 = input.LA(1);

            if ( (LA6_0=='\\') ) {
                int LA6_1 = input.LA(2);

                if ( ((LA6_1>='0' && LA6_1<='3')) ) {
                    int LA6_2 = input.LA(3);

                    if ( ((LA6_2>='0' && LA6_2<='7')) ) {
                        int LA6_4 = input.LA(4);

                        if ( ((LA6_4>='0' && LA6_4<='7')) ) {
                            alt6=1;
                        }
                        else {
                            alt6=2;}
                    }
                    else {
                        alt6=3;}
                }
                else if ( ((LA6_1>='4' && LA6_1<='7')) ) {
                    int LA6_3 = input.LA(3);

                    if ( ((LA6_3>='0' && LA6_3<='7')) ) {
                        alt6=2;
                    }
                    else {
                        alt6=3;}
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 6, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;
            }
            switch (alt6) {
                case 1 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:494:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
                    {
                    match('\\'); 
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:494:14: ( '0' .. '3' )
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:494:15: '0' .. '3'
                    {
                    matchRange('0','3'); 

                    }

                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:494:25: ( '0' .. '7' )
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:494:26: '0' .. '7'
                    {
                    matchRange('0','7'); 

                    }

                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:494:36: ( '0' .. '7' )
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:494:37: '0' .. '7'
                    {
                    matchRange('0','7'); 

                    }


                    }
                    break;
                case 2 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:495:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
                    {
                    match('\\'); 
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:495:14: ( '0' .. '7' )
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:495:15: '0' .. '7'
                    {
                    matchRange('0','7'); 

                    }

                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:495:25: ( '0' .. '7' )
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:495:26: '0' .. '7'
                    {
                    matchRange('0','7'); 

                    }


                    }
                    break;
                case 3 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:496:9: '\\\\' ( '0' .. '7' )
                    {
                    match('\\'); 
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:496:14: ( '0' .. '7' )
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:496:15: '0' .. '7'
                    {
                    matchRange('0','7'); 

                    }


                    }
                    break;

            }
        }
        finally {
        }
    }
    // $ANTLR end "OCTAL_ESCAPE"

    // $ANTLR start "UNICODE_ESCAPE"
    public final void mUNICODE_ESCAPE() throws RecognitionException {
        try {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:501:5: ( '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:501:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
            {
            match('\\'); 
            match('u'); 
            mHEX_DIGIT(); 
            mHEX_DIGIT(); 
            mHEX_DIGIT(); 
            mHEX_DIGIT(); 

            }

        }
        finally {
        }
    }
    // $ANTLR end "UNICODE_ESCAPE"

    // $ANTLR start "HEX_DIGIT"
    public final void mHEX_DIGIT() throws RecognitionException {
        try {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:510:2: ( ( '0' .. '9' | 'A' .. 'F' | 'a' .. 'f' ) )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:510:4: ( '0' .. '9' | 'A' .. 'F' | 'a' .. 'f' )
            {
            if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}


            }

        }
        finally {
        }
    }
    // $ANTLR end "HEX_DIGIT"

    // $ANTLR start "IDENT"
    public final void mIDENT() throws RecognitionException {
        try {
            int _type = IDENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:522:2: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '$' )* )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:522:4: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '$' )*
            {
            if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}

            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:522:32: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '$' )*
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( (LA7_0=='$'||(LA7_0>='0' && LA7_0<='9')||(LA7_0>='A' && LA7_0<='Z')||LA7_0=='_'||(LA7_0>='a' && LA7_0<='z')) ) {
                    alt7=1;
                }


                switch (alt7) {
            	case 1 :
            	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:
            	    {
            	    if ( input.LA(1)=='$'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    break loop7;
                }
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "IDENT"

    // $ANTLR start "LINE_COMMENT"
    public final void mLINE_COMMENT() throws RecognitionException {
        try {
            int _type = LINE_COMMENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:526:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:526:7: '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
            {
            match("//"); 

            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:526:12: (~ ( '\\n' | '\\r' ) )*
            loop8:
            do {
                int alt8=2;
                int LA8_0 = input.LA(1);

                if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) {
                    alt8=1;
                }


                switch (alt8) {
            	case 1 :
            	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:526:12: ~ ( '\\n' | '\\r' )
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    break loop8;
                }
            } while (true);

            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:526:26: ( '\\r' )?
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0=='\r') ) {
                alt9=1;
            }
            switch (alt9) {
                case 1 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:526:26: '\\r'
                    {
                    match('\r'); 

                    }
                    break;

            }

            match('\n'); 
            _channel=HIDDEN;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LINE_COMMENT"

    // $ANTLR start "ML_COMMENT"
    public final void mML_COMMENT() throws RecognitionException {
        try {
            int _type = ML_COMMENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:530:5: ( '/*' ( options {greedy=false; } : . )* '*/' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:530:9: '/*' ( options {greedy=false; } : . )* '*/'
            {
            match("/*"); 

            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:530:14: ( options {greedy=false; } : . )*
            loop10:
            do {
                int alt10=2;
                int LA10_0 = input.LA(1);

                if ( (LA10_0=='*') ) {
                    int LA10_1 = input.LA(2);

                    if ( (LA10_1=='/') ) {
                        alt10=2;
                    }
                    else if ( ((LA10_1>='\u0000' && LA10_1<='.')||(LA10_1>='0' && LA10_1<='\uFFFF')) ) {
                        alt10=1;
                    }


                }
                else if ( ((LA10_0>='\u0000' && LA10_0<=')')||(LA10_0>='+' && LA10_0<='\uFFFF')) ) {
                    alt10=1;
                }


                switch (alt10) {
            	case 1 :
            	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:530:42: .
            	    {
            	    matchAny(); 

            	    }
            	    break;

            	default :
            	    break loop10;
                }
            } while (true);

            match("*/"); 

            _channel=HIDDEN;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ML_COMMENT"

    // $ANTLR start "MULTI_LINE_STRING"
    public final void mMULTI_LINE_STRING() throws RecognitionException {
        try {
            int _type = MULTI_LINE_STRING;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:535:5: ( '/---' ( options {greedy=false; } : . )* '---/' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:535:9: '/---' ( options {greedy=false; } : . )* '---/'
            {
            match("/---"); 

            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:535:16: ( options {greedy=false; } : . )*
            loop11:
            do {
                int alt11=2;
                int LA11_0 = input.LA(1);

                if ( (LA11_0=='-') ) {
                    int LA11_1 = input.LA(2);

                    if ( (LA11_1=='-') ) {
                        int LA11_3 = input.LA(3);

                        if ( (LA11_3=='-') ) {
                            int LA11_4 = input.LA(4);

                            if ( (LA11_4=='/') ) {
                                alt11=2;
                            }
                            else if ( ((LA11_4>='\u0000' && LA11_4<='.')||(LA11_4>='0' && LA11_4<='\uFFFF')) ) {
                                alt11=1;
                            }


                        }
                        else if ( ((LA11_3>='\u0000' && LA11_3<=',')||(LA11_3>='.' && LA11_3<='\uFFFF')) ) {
                            alt11=1;
                        }


                    }
                    else if ( ((LA11_1>='\u0000' && LA11_1<=',')||(LA11_1>='.' && LA11_1<='\uFFFF')) ) {
                        alt11=1;
                    }


                }
                else if ( ((LA11_0>='\u0000' && LA11_0<=',')||(LA11_0>='.' && LA11_0<='\uFFFF')) ) {
                    alt11=1;
                }


                switch (alt11) {
            	case 1 :
            	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:535:44: .
            	    {
            	    matchAny(); 

            	    }
            	    break;

            	default :
            	    break loop11;
                }
            } while (true);

            match("---/"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MULTI_LINE_STRING"

    // $ANTLR start "NUM_INT"
    public final void mNUM_INT() throws RecognitionException {
        try {
            int _type = NUM_INT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:539:5: ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL )
            int alt12=3;
            int LA12_0 = input.LA(1);

            if ( (LA12_0=='0') ) {
                switch ( input.LA(2) ) {
                case 'X':
                case 'x':
                    {
                    alt12=1;
                    }
                    break;
                case '0':
                case '1':
                case '2':
                case '3':
                case '4':
                case '5':
                case '6':
                case '7':
                    {
                    alt12=2;
                    }
                    break;
                default:
                    alt12=3;}

            }
            else if ( ((LA12_0>='1' && LA12_0<='9')) ) {
                alt12=3;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 12, 0, input);

                throw nvae;
            }
            switch (alt12) {
                case 1 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:539:9: HEX_LITERAL
                    {
                    mHEX_LITERAL(); 

                    }
                    break;
                case 2 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:540:9: OCTAL_LITERAL
                    {
                    mOCTAL_LITERAL(); 

                    }
                    break;
                case 3 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:541:9: DECIMAL_LITERAL
                    {
                    mDECIMAL_LITERAL(); 

                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NUM_INT"

    // $ANTLR start "NUM_FLOAT"
    public final void mNUM_FLOAT() throws RecognitionException {
        try {
            int _type = NUM_FLOAT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:547:5: ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )? | '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )? | ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )? | ( '0' .. '9' )+ FloatTypeSuffix )
            int alt23=4;
            alt23 = dfa23.predict(input);
            switch (alt23) {
                case 1 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:547:9: ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )?
                    {
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:547:9: ( '0' .. '9' )+
                    int cnt13=0;
                    loop13:
                    do {
                        int alt13=2;
                        int LA13_0 = input.LA(1);

                        if ( ((LA13_0>='0' && LA13_0<='9')) ) {
                            alt13=1;
                        }


                        switch (alt13) {
                    	case 1 :
                    	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:547:10: '0' .. '9'
                    	    {
                    	    matchRange('0','9'); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt13 >= 1 ) break loop13;
                                EarlyExitException eee =
                                    new EarlyExitException(13, input);
                                throw eee;
                        }
                        cnt13++;
                    } while (true);

                    match('.'); 
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:547:25: ( '0' .. '9' )*
                    loop14:
                    do {
                        int alt14=2;
                        int LA14_0 = input.LA(1);

                        if ( ((LA14_0>='0' && LA14_0<='9')) ) {
                            alt14=1;
                        }


                        switch (alt14) {
                    	case 1 :
                    	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:547:26: '0' .. '9'
                    	    {
                    	    matchRange('0','9'); 

                    	    }
                    	    break;

                    	default :
                    	    break loop14;
                        }
                    } while (true);

                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:547:37: ( Exponent )?
                    int alt15=2;
                    int LA15_0 = input.LA(1);

                    if ( (LA15_0=='E'||LA15_0=='e') ) {
                        alt15=1;
                    }
                    switch (alt15) {
                        case 1 :
                            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:547:37: Exponent
                            {
                            mExponent(); 

                            }
                            break;

                    }

                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:547:47: ( FloatTypeSuffix )?
                    int alt16=2;
                    int LA16_0 = input.LA(1);

                    if ( (LA16_0=='D'||LA16_0=='F'||LA16_0=='d'||LA16_0=='f') ) {
                        alt16=1;
                    }
                    switch (alt16) {
                        case 1 :
                            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:547:47: FloatTypeSuffix
                            {
                            mFloatTypeSuffix(); 

                            }
                            break;

                    }


                    }
                    break;
                case 2 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:548:9: '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )?
                    {
                    match('.'); 
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:548:13: ( '0' .. '9' )+
                    int cnt17=0;
                    loop17:
                    do {
                        int alt17=2;
                        int LA17_0 = input.LA(1);

                        if ( ((LA17_0>='0' && LA17_0<='9')) ) {
                            alt17=1;
                        }


                        switch (alt17) {
                    	case 1 :
                    	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:548:14: '0' .. '9'
                    	    {
                    	    matchRange('0','9'); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt17 >= 1 ) break loop17;
                                EarlyExitException eee =
                                    new EarlyExitException(17, input);
                                throw eee;
                        }
                        cnt17++;
                    } while (true);

                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:548:25: ( Exponent )?
                    int alt18=2;
                    int LA18_0 = input.LA(1);

                    if ( (LA18_0=='E'||LA18_0=='e') ) {
                        alt18=1;
                    }
                    switch (alt18) {
                        case 1 :
                            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:548:25: Exponent
                            {
                            mExponent(); 

                            }
                            break;

                    }

                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:548:35: ( FloatTypeSuffix )?
                    int alt19=2;
                    int LA19_0 = input.LA(1);

                    if ( (LA19_0=='D'||LA19_0=='F'||LA19_0=='d'||LA19_0=='f') ) {
                        alt19=1;
                    }
                    switch (alt19) {
                        case 1 :
                            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:548:35: FloatTypeSuffix
                            {
                            mFloatTypeSuffix(); 

                            }
                            break;

                    }


                    }
                    break;
                case 3 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:549:9: ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )?
                    {
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:549:9: ( '0' .. '9' )+
                    int cnt20=0;
                    loop20:
                    do {
                        int alt20=2;
                        int LA20_0 = input.LA(1);

                        if ( ((LA20_0>='0' && LA20_0<='9')) ) {
                            alt20=1;
                        }


                        switch (alt20) {
                    	case 1 :
                    	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:549:10: '0' .. '9'
                    	    {
                    	    matchRange('0','9'); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt20 >= 1 ) break loop20;
                                EarlyExitException eee =
                                    new EarlyExitException(20, input);
                                throw eee;
                        }
                        cnt20++;
                    } while (true);

                    mExponent(); 
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:549:30: ( FloatTypeSuffix )?
                    int alt21=2;
                    int LA21_0 = input.LA(1);

                    if ( (LA21_0=='D'||LA21_0=='F'||LA21_0=='d'||LA21_0=='f') ) {
                        alt21=1;
                    }
                    switch (alt21) {
                        case 1 :
                            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:549:30: FloatTypeSuffix
                            {
                            mFloatTypeSuffix(); 

                            }
                            break;

                    }


                    }
                    break;
                case 4 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:550:9: ( '0' .. '9' )+ FloatTypeSuffix
                    {
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:550:9: ( '0' .. '9' )+
                    int cnt22=0;
                    loop22:
                    do {
                        int alt22=2;
                        int LA22_0 = input.LA(1);

                        if ( ((LA22_0>='0' && LA22_0<='9')) ) {
                            alt22=1;
                        }


                        switch (alt22) {
                    	case 1 :
                    	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:550:10: '0' .. '9'
                    	    {
                    	    matchRange('0','9'); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt22 >= 1 ) break loop22;
                                EarlyExitException eee =
                                    new EarlyExitException(22, input);
                                throw eee;
                        }
                        cnt22++;
                    } while (true);

                    mFloatTypeSuffix(); 

                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NUM_FLOAT"

    // $ANTLR start "Exponent"
    public final void mExponent() throws RecognitionException {
        try {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:554:10: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:554:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+
            {
            if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}

            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:554:22: ( '+' | '-' )?
            int alt24=2;
            int LA24_0 = input.LA(1);

            if ( (LA24_0=='+'||LA24_0=='-') ) {
                alt24=1;
            }
            switch (alt24) {
                case 1 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:
                    {
                    if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
                        input.consume();

                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        recover(mse);
                        throw mse;}


                    }
                    break;

            }

            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:554:33: ( '0' .. '9' )+
            int cnt25=0;
            loop25:
            do {
                int alt25=2;
                int LA25_0 = input.LA(1);

                if ( ((LA25_0>='0' && LA25_0<='9')) ) {
                    alt25=1;
                }


                switch (alt25) {
            	case 1 :
            	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:554:34: '0' .. '9'
            	    {
            	    matchRange('0','9'); 

            	    }
            	    break;

            	default :
            	    if ( cnt25 >= 1 ) break loop25;
                        EarlyExitException eee =
                            new EarlyExitException(25, input);
                        throw eee;
                }
                cnt25++;
            } while (true);


            }

        }
        finally {
        }
    }
    // $ANTLR end "Exponent"

    // $ANTLR start "FloatTypeSuffix"
    public final void mFloatTypeSuffix() throws RecognitionException {
        try {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:557:17: ( ( 'f' | 'F' | 'd' | 'D' ) )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:557:19: ( 'f' | 'F' | 'd' | 'D' )
            {
            if ( input.LA(1)=='D'||input.LA(1)=='F'||input.LA(1)=='d'||input.LA(1)=='f' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}


            }

        }
        finally {
        }
    }
    // $ANTLR end "FloatTypeSuffix"

    // $ANTLR start "HEX_LITERAL"
    public final void mHEX_LITERAL() throws RecognitionException {
        try {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:560:13: ( '0' ( 'x' | 'X' ) ( HEX_DIGIT )+ ( IntegerTypeSuffix )? )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:560:15: '0' ( 'x' | 'X' ) ( HEX_DIGIT )+ ( IntegerTypeSuffix )?
            {
            match('0'); 
            if ( input.LA(1)=='X'||input.LA(1)=='x' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}

            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:560:29: ( HEX_DIGIT )+
            int cnt26=0;
            loop26:
            do {
                int alt26=2;
                int LA26_0 = input.LA(1);

                if ( ((LA26_0>='0' && LA26_0<='9')||(LA26_0>='A' && LA26_0<='F')||(LA26_0>='a' && LA26_0<='f')) ) {
                    alt26=1;
                }


                switch (alt26) {
            	case 1 :
            	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:560:29: HEX_DIGIT
            	    {
            	    mHEX_DIGIT(); 

            	    }
            	    break;

            	default :
            	    if ( cnt26 >= 1 ) break loop26;
                        EarlyExitException eee =
                            new EarlyExitException(26, input);
                        throw eee;
                }
                cnt26++;
            } while (true);

            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:560:40: ( IntegerTypeSuffix )?
            int alt27=2;
            int LA27_0 = input.LA(1);

            if ( (LA27_0=='L'||LA27_0=='l') ) {
                alt27=1;
            }
            switch (alt27) {
                case 1 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:560:40: IntegerTypeSuffix
                    {
                    mIntegerTypeSuffix(); 

                    }
                    break;

            }


            }

        }
        finally {
        }
    }
    // $ANTLR end "HEX_LITERAL"

    // $ANTLR start "DECIMAL_LITERAL"
    public final void mDECIMAL_LITERAL() throws RecognitionException {
        try {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:563:17: ( ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( IntegerTypeSuffix )? )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:563:19: ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( IntegerTypeSuffix )?
            {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:563:19: ( '0' | '1' .. '9' ( '0' .. '9' )* )
            int alt29=2;
            int LA29_0 = input.LA(1);

            if ( (LA29_0=='0') ) {
                alt29=1;
            }
            else if ( ((LA29_0>='1' && LA29_0<='9')) ) {
                alt29=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 29, 0, input);

                throw nvae;
            }
            switch (alt29) {
                case 1 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:563:20: '0'
                    {
                    match('0'); 

                    }
                    break;
                case 2 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:563:26: '1' .. '9' ( '0' .. '9' )*
                    {
                    matchRange('1','9'); 
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:563:35: ( '0' .. '9' )*
                    loop28:
                    do {
                        int alt28=2;
                        int LA28_0 = input.LA(1);

                        if ( ((LA28_0>='0' && LA28_0<='9')) ) {
                            alt28=1;
                        }


                        switch (alt28) {
                    	case 1 :
                    	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:563:35: '0' .. '9'
                    	    {
                    	    matchRange('0','9'); 

                    	    }
                    	    break;

                    	default :
                    	    break loop28;
                        }
                    } while (true);


                    }
                    break;

            }

            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:563:46: ( IntegerTypeSuffix )?
            int alt30=2;
            int LA30_0 = input.LA(1);

            if ( (LA30_0=='L'||LA30_0=='l') ) {
                alt30=1;
            }
            switch (alt30) {
                case 1 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:563:46: IntegerTypeSuffix
                    {
                    mIntegerTypeSuffix(); 

                    }
                    break;

            }


            }

        }
        finally {
        }
    }
    // $ANTLR end "DECIMAL_LITERAL"

    // $ANTLR start "OCTAL_LITERAL"
    public final void mOCTAL_LITERAL() throws RecognitionException {
        try {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:566:15: ( '0' ( '0' .. '7' )+ ( IntegerTypeSuffix )? )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:566:17: '0' ( '0' .. '7' )+ ( IntegerTypeSuffix )?
            {
            match('0'); 
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:566:21: ( '0' .. '7' )+
            int cnt31=0;
            loop31:
            do {
                int alt31=2;
                int LA31_0 = input.LA(1);

                if ( ((LA31_0>='0' && LA31_0<='7')) ) {
                    alt31=1;
                }


                switch (alt31) {
            	case 1 :
            	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:566:22: '0' .. '7'
            	    {
            	    matchRange('0','7'); 

            	    }
            	    break;

            	default :
            	    if ( cnt31 >= 1 ) break loop31;
                        EarlyExitException eee =
                            new EarlyExitException(31, input);
                        throw eee;
                }
                cnt31++;
            } while (true);

            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:566:33: ( IntegerTypeSuffix )?
            int alt32=2;
            int LA32_0 = input.LA(1);

            if ( (LA32_0=='L'||LA32_0=='l') ) {
                alt32=1;
            }
            switch (alt32) {
                case 1 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:566:33: IntegerTypeSuffix
                    {
                    mIntegerTypeSuffix(); 

                    }
                    break;

            }


            }

        }
        finally {
        }
    }
    // $ANTLR end "OCTAL_LITERAL"

    // $ANTLR start "IntegerTypeSuffix"
    public final void mIntegerTypeSuffix() throws RecognitionException {
        try {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:569:19: ( ( 'l' | 'L' ) )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:569:21: ( 'l' | 'L' )
            {
            if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}


            }

        }
        finally {
        }
    }
    // $ANTLR end "IntegerTypeSuffix"

    // $ANTLR start "EXPONENT"
    public final void mEXPONENT() throws RecognitionException {
        try {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:575:5: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:575:7: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+
            {
            if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}

            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:575:17: ( '+' | '-' )?
            int alt33=2;
            int LA33_0 = input.LA(1);

            if ( (LA33_0=='+'||LA33_0=='-') ) {
                alt33=1;
            }
            switch (alt33) {
                case 1 :
                    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:
                    {
                    if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
                        input.consume();

                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        recover(mse);
                        throw mse;}


                    }
                    break;

            }

            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:575:28: ( '0' .. '9' )+
            int cnt34=0;
            loop34:
            do {
                int alt34=2;
                int LA34_0 = input.LA(1);

                if ( ((LA34_0>='0' && LA34_0<='9')) ) {
                    alt34=1;
                }


                switch (alt34) {
            	case 1 :
            	    // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:575:29: '0' .. '9'
            	    {
            	    matchRange('0','9'); 

            	    }
            	    break;

            	default :
            	    if ( cnt34 >= 1 ) break loop34;
                        EarlyExitException eee =
                            new EarlyExitException(34, input);
                        throw eee;
                }
                cnt34++;
            } while (true);


            }

        }
        finally {
        }
    }
    // $ANTLR end "EXPONENT"

    // $ANTLR start "FLOAT_SUFFIX"
    public final void mFLOAT_SUFFIX() throws RecognitionException {
        try {
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:581:5: ( 'd' | 'D' )
            // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:
            {
            if ( input.LA(1)=='D'||input.LA(1)=='d' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}


            }

        }
        finally {
        }
    }
    // $ANTLR end "FLOAT_SUFFIX"

    public void mTokens() throws RecognitionException {
        // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:8: ( T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | DOT | TRUE | FALSE | WS | CHAR_LITERAL | STRING_LITERAL | IDENT | LINE_COMMENT | ML_COMMENT | MULTI_LINE_STRING | NUM_INT | NUM_FLOAT )
        int alt35=36;
        alt35 = dfa35.predict(input);
        switch (alt35) {
            case 1 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:10: T__31
                {
                mT__31(); 

                }
                break;
            case 2 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:16: T__32
                {
                mT__32(); 

                }
                break;
            case 3 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:22: T__33
                {
                mT__33(); 

                }
                break;
            case 4 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:28: T__34
                {
                mT__34(); 

                }
                break;
            case 5 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:34: T__35
                {
                mT__35(); 

                }
                break;
            case 6 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:40: T__36
                {
                mT__36(); 

                }
                break;
            case 7 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:46: T__37
                {
                mT__37(); 

                }
                break;
            case 8 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:52: T__38
                {
                mT__38(); 

                }
                break;
            case 9 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:58: T__39
                {
                mT__39(); 

                }
                break;
            case 10 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:64: T__40
                {
                mT__40(); 

                }
                break;
            case 11 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:70: T__41
                {
                mT__41(); 

                }
                break;
            case 12 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:76: T__42
                {
                mT__42(); 

                }
                break;
            case 13 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:82: T__43
                {
                mT__43(); 

                }
                break;
            case 14 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:88: T__44
                {
                mT__44(); 

                }
                break;
            case 15 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:94: T__45
                {
                mT__45(); 

                }
                break;
            case 16 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:100: T__46
                {
                mT__46(); 

                }
                break;
            case 17 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:106: T__47
                {
                mT__47(); 

                }
                break;
            case 18 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:112: T__48
                {
                mT__48(); 

                }
                break;
            case 19 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:118: T__49
                {
                mT__49(); 

                }
                break;
            case 20 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:124: T__50
                {
                mT__50(); 

                }
                break;
            case 21 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:130: T__51
                {
                mT__51(); 

                }
                break;
            case 22 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:136: T__52
                {
                mT__52(); 

                }
                break;
            case 23 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:142: T__53
                {
                mT__53(); 

                }
                break;
            case 24 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:148: T__54
                {
                mT__54(); 

                }
                break;
            case 25 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:154: DOT
                {
                mDOT(); 

                }
                break;
            case 26 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:158: TRUE
                {
                mTRUE(); 

                }
                break;
            case 27 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:163: FALSE
                {
                mFALSE(); 

                }
                break;
            case 28 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:169: WS
                {
                mWS(); 

                }
                break;
            case 29 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:172: CHAR_LITERAL
                {
                mCHAR_LITERAL(); 

                }
                break;
            case 30 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:185: STRING_LITERAL
                {
                mSTRING_LITERAL(); 

                }
                break;
            case 31 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:200: IDENT
                {
                mIDENT(); 

                }
                break;
            case 32 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:206: LINE_COMMENT
                {
                mLINE_COMMENT(); 

                }
                break;
            case 33 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:219: ML_COMMENT
                {
                mML_COMMENT(); 

                }
                break;
            case 34 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:230: MULTI_LINE_STRING
                {
                mMULTI_LINE_STRING(); 

                }
                break;
            case 35 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:248: NUM_INT
                {
                mNUM_INT(); 

                }
                break;
            case 36 :
                // /Users/fleipold/development/java/temp/lang4j/gen-src/lang4j/parser/generated/Lang4j.g:1:256: NUM_FLOAT
                {
                mNUM_FLOAT(); 

                }
                break;

        }

    }


    protected DFA23 dfa23 = new DFA23(this);
    protected DFA35 dfa35 = new DFA35(this);
    static final String DFA23_eotS =
        "\6\uffff";
    static final String DFA23_eofS =
        "\6\uffff";
    static final String DFA23_minS =
        "\2\56\4\uffff";
    static final String DFA23_maxS =
        "\1\71\1\146\4\uffff";
    static final String DFA23_acceptS =
        "\2\uffff\1\2\1\1\1\3\1\4";
    static final String DFA23_specialS =
        "\6\uffff}>";
    static final String[] DFA23_transitionS = {
            "\1\2\1\uffff\12\1",
            "\1\3\1\uffff\12\1\12\uffff\1\5\1\4\1\5\35\uffff\1\5\1\4\1\5",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA23_eot = DFA.unpackEncodedString(DFA23_eotS);
    static final short[] DFA23_eof = DFA.unpackEncodedString(DFA23_eofS);
    static final char[] DFA23_min = DFA.unpackEncodedStringToUnsignedChars(DFA23_minS);
    static final char[] DFA23_max = DFA.unpackEncodedStringToUnsignedChars(DFA23_maxS);
    static final short[] DFA23_accept = DFA.unpackEncodedString(DFA23_acceptS);
    static final short[] DFA23_special = DFA.unpackEncodedString(DFA23_specialS);
    static final short[][] DFA23_transition;

    static {
        int numStates = DFA23_transitionS.length;
        DFA23_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA23_transition[i] = DFA.unpackEncodedString(DFA23_transitionS[i]);
        }
    }

    class DFA23 extends DFA {

        public DFA23(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 23;
            this.eot = DFA23_eot;
            this.eof = DFA23_eof;
            this.min = DFA23_min;
            this.max = DFA23_max;
            this.accept = DFA23_accept;
            this.special = DFA23_special;
            this.transition = DFA23_transition;
        }
        public String getDescription() {
            return "546:1: NUM_FLOAT : ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( Exponent )? ( FloatTypeSuffix )? | '.' ( '0' .. '9' )+ ( Exponent )? ( FloatTypeSuffix )? | ( '0' .. '9' )+ Exponent ( FloatTypeSuffix )? | ( '0' .. '9' )+ FloatTypeSuffix );";
        }
    }
    static final String DFA35_eotS =
        "\1\uffff\1\36\2\uffff\2\36\4\uffff\2\36\1\uffff\3\36\2\uffff\6\36"+
        "\1\61\2\36\5\uffff\2\70\17\36\2\uffff\2\36\4\uffff\2\70\6\36\1\122"+
        "\14\36\1\137\1\36\1\141\1\36\1\uffff\10\36\1\153\3\36\1\uffff\1"+
        "\36\1\uffff\1\36\1\161\7\36\1\uffff\1\171\4\36\1\uffff\7\36\1\uffff"+
        "\1\36\1\u0086\3\36\1\u008a\6\36\1\uffff\3\36\1\uffff\6\36\1\u009a"+
        "\1\u009b\7\36\2\uffff\3\36\1\u00a6\2\36\1\u00a9\2\36\1\u00ac\1\uffff"+
        "\2\36\1\uffff\1\u00af\1\36\1\uffff\2\36\1\uffff\4\36\1\u00b7\2\36"+
        "\1\uffff\1\u00ba\1\36\1\uffff\1\36\1\u00bd\1\uffff";
    static final String DFA35_eofS =
        "\u00be\uffff";
    static final String DFA35_minS =
        "\1\11\1\162\2\uffff\1\141\1\151\4\uffff\1\105\1\156\1\uffff\1\156"+
        "\1\145\1\154\2\uffff\1\110\1\111\1\125\1\104\2\117\1\60\1\162\1"+
        "\141\4\uffff\1\52\2\56\1\141\1\143\1\163\1\106\1\165\1\164\1\171"+
        "\1\141\1\101\1\124\1\114\1\124\1\105\1\125\1\117\2\uffff\1\165\1"+
        "\154\4\uffff\2\56\1\155\1\153\1\164\1\105\1\155\1\145\1\44\1\163"+
        "\1\122\1\105\1\124\1\137\1\116\1\102\1\114\1\145\1\163\1\155\1\141"+
        "\1\44\1\122\1\44\1\162\1\uffff\1\163\1\137\1\122\1\111\1\114\1\124"+
        "\1\114\1\105\1\44\1\145\1\141\1\147\1\uffff\1\105\1\uffff\1\146"+
        "\1\44\1\114\1\101\1\137\2\111\1\105\1\101\1\uffff\1\44\1\162\1\145"+
        "\1\116\1\141\1\uffff\1\111\2\114\1\124\1\106\1\137\1\116\1\uffff"+
        "\1\116\1\44\1\103\1\143\1\124\1\44\1\111\1\105\1\111\1\114\1\137"+
        "\1\141\1\uffff\1\105\1\145\1\105\1\uffff\1\116\1\122\1\105\1\111"+
        "\1\114\1\155\2\44\1\122\1\105\1\101\1\122\1\124\1\111\1\145\2\uffff"+
        "\1\101\1\137\1\114\1\44\1\105\1\124\1\44\2\114\1\44\1\uffff\1\122"+
        "\1\105\1\uffff\1\44\1\111\1\uffff\1\101\1\122\1\uffff\1\124\1\114"+
        "\1\101\1\105\1\44\1\114\1\122\1\uffff\1\44\1\101\1\uffff\1\114\1"+
        "\44\1\uffff";
    static final String DFA35_maxS =
        "\1\174\1\162\2\uffff\1\141\1\151\4\uffff\1\105\1\156\1\uffff\1\156"+
        "\1\145\1\154\2\uffff\1\110\1\111\1\125\1\116\2\117\1\71\1\162\1"+
        "\141\4\uffff\1\57\2\146\1\141\1\143\1\163\1\106\1\165\1\164\1\171"+
        "\1\141\1\101\1\124\1\114\1\124\1\105\1\125\1\117\2\uffff\1\165\1"+
        "\154\4\uffff\2\146\1\155\1\153\1\164\1\105\1\155\1\145\1\172\1\163"+
        "\1\122\1\105\1\124\1\137\1\116\1\102\1\114\1\145\1\163\1\155\1\141"+
        "\1\172\1\122\1\172\1\162\1\uffff\1\163\1\137\1\122\1\111\1\114\1"+
        "\124\1\114\1\105\1\172\1\145\1\141\1\147\1\uffff\1\105\1\uffff\1"+
        "\146\1\172\1\114\1\101\1\137\2\111\1\105\1\101\1\uffff\1\172\1\162"+
        "\1\145\1\116\1\141\1\uffff\1\111\2\114\1\124\1\106\1\137\1\116\1"+
        "\uffff\1\116\1\172\1\103\1\143\1\124\1\172\1\111\1\105\1\111\1\114"+
        "\1\137\1\141\1\uffff\1\105\1\145\1\105\1\uffff\1\116\1\122\1\105"+
        "\1\111\1\114\1\155\2\172\1\122\1\105\1\101\1\122\1\124\1\111\1\145"+
        "\2\uffff\1\101\1\137\1\114\1\172\1\105\1\124\1\172\2\114\1\172\1"+
        "\uffff\1\122\1\105\1\uffff\1\172\1\111\1\uffff\1\101\1\122\1\uffff"+
        "\1\124\1\114\1\101\1\105\1\172\1\114\1\122\1\uffff\1\172\1\101\1"+
        "\uffff\1\114\1\172\1\uffff";
    static final String DFA35_acceptS =
        "\2\uffff\1\2\1\3\2\uffff\1\6\1\7\1\10\1\11\2\uffff\1\14\3\uffff"+
        "\1\20\1\21\11\uffff\1\34\1\35\1\36\1\37\22\uffff\1\31\1\44\2\uffff"+
        "\1\40\1\41\1\42\1\43\31\uffff\1\16\14\uffff\1\5\1\uffff\1\13\11"+
        "\uffff\1\32\5\uffff\1\17\7\uffff\1\33\14\uffff\1\4\3\uffff\1\23"+
        "\17\uffff\1\12\1\15\12\uffff\1\26\2\uffff\1\1\2\uffff\1\25\2\uffff"+
        "\1\22\7\uffff\1\27\2\uffff\1\30\2\uffff\1\24";
    static final String DFA35_specialS =
        "\u00be\uffff}>";
    static final String[] DFA35_transitionS = {
            "\2\33\2\uffff\1\33\22\uffff\1\33\1\uffff\1\35\1\uffff\1\36\2"+
            "\uffff\1\34\1\6\1\7\1\10\3\uffff\1\30\1\37\1\40\11\41\1\2\1"+
            "\3\5\uffff\1\36\1\27\1\22\1\26\4\36\1\25\2\36\1\23\1\24\4\36"+
            "\1\12\10\36\1\20\1\uffff\1\21\1\11\1\36\1\uffff\2\36\1\17\1"+
            "\36\1\13\1\32\1\1\1\36\1\15\1\36\1\16\1\5\3\36\1\4\3\36\1\31"+
            "\6\36\1\uffff\1\14",
            "\1\42",
            "",
            "",
            "\1\43",
            "\1\44",
            "",
            "",
            "",
            "",
            "\1\45",
            "\1\46",
            "",
            "\1\47",
            "\1\50",
            "\1\51",
            "",
            "",
            "\1\52",
            "\1\53",
            "\1\54",
            "\1\56\11\uffff\1\55",
            "\1\57",
            "\1\60",
            "\12\62",
            "\1\63",
            "\1\64",
            "",
            "",
            "",
            "",
            "\1\66\2\uffff\1\67\1\uffff\1\65",
            "\1\62\1\uffff\10\71\2\62\12\uffff\3\62\35\uffff\3\62",
            "\1\62\1\uffff\12\72\12\uffff\3\62\35\uffff\3\62",
            "\1\73",
            "\1\74",
            "\1\75",
            "\1\76",
            "\1\77",
            "\1\100",
            "\1\101",
            "\1\102",
            "\1\103",
            "\1\104",
            "\1\105",
            "\1\106",
            "\1\107",
            "\1\110",
            "\1\111",
            "",
            "",
            "\1\112",
            "\1\113",
            "",
            "",
            "",
            "",
            "\1\62\1\uffff\10\71\2\62\12\uffff\3\62\35\uffff\3\62",
            "\1\62\1\uffff\12\72\12\uffff\3\62\35\uffff\3\62",
            "\1\114",
            "\1\115",
            "\1\116",
            "\1\117",
            "\1\120",
            "\1\121",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "\1\123",
            "\1\124",
            "\1\125",
            "\1\126",
            "\1\127",
            "\1\130",
            "\1\131",
            "\1\132",
            "\1\133",
            "\1\134",
            "\1\135",
            "\1\136",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "\1\140",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "\1\142",
            "",
            "\1\143",
            "\1\144",
            "\1\145",
            "\1\146",
            "\1\147",
            "\1\150",
            "\1\151",
            "\1\152",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "\1\154",
            "\1\155",
            "\1\156",
            "",
            "\1\157",
            "",
            "\1\160",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "\1\162",
            "\1\163",
            "\1\164",
            "\1\165",
            "\1\166",
            "\1\167",
            "\1\170",
            "",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "\1\172",
            "\1\173",
            "\1\174",
            "\1\175",
            "",
            "\1\176",
            "\1\177",
            "\1\u0080",
            "\1\u0081",
            "\1\u0082",
            "\1\u0083",
            "\1\u0084",
            "",
            "\1\u0085",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "\1\u0087",
            "\1\u0088",
            "\1\u0089",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "\1\u008b",
            "\1\u008c",
            "\1\u008d",
            "\1\u008e",
            "\1\u008f",
            "\1\u0090",
            "",
            "\1\u0091",
            "\1\u0092",
            "\1\u0093",
            "",
            "\1\u0094",
            "\1\u0095",
            "\1\u0096",
            "\1\u0097",
            "\1\u0098",
            "\1\u0099",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "\1\u009c",
            "\1\u009d",
            "\1\u009e",
            "\1\u009f",
            "\1\u00a0",
            "\1\u00a1",
            "\1\u00a2",
            "",
            "",
            "\1\u00a3",
            "\1\u00a4",
            "\1\u00a5",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "\1\u00a7",
            "\1\u00a8",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "\1\u00aa",
            "\1\u00ab",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "",
            "\1\u00ad",
            "\1\u00ae",
            "",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "\1\u00b0",
            "",
            "\1\u00b1",
            "\1\u00b2",
            "",
            "\1\u00b3",
            "\1\u00b4",
            "\1\u00b5",
            "\1\u00b6",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "\1\u00b8",
            "\1\u00b9",
            "",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            "\1\u00bb",
            "",
            "\1\u00bc",
            "\1\36\13\uffff\12\36\7\uffff\32\36\4\uffff\1\36\1\uffff\32"+
            "\36",
            ""
    };

    static final short[] DFA35_eot = DFA.unpackEncodedString(DFA35_eotS);
    static final short[] DFA35_eof = DFA.unpackEncodedString(DFA35_eofS);
    static final char[] DFA35_min = DFA.unpackEncodedStringToUnsignedChars(DFA35_minS);
    static final char[] DFA35_max = DFA.unpackEncodedStringToUnsignedChars(DFA35_maxS);
    static final short[] DFA35_accept = DFA.unpackEncodedString(DFA35_acceptS);
    static final short[] DFA35_special = DFA.unpackEncodedString(DFA35_specialS);
    static final short[][] DFA35_transition;

    static {
        int numStates = DFA35_transitionS.length;
        DFA35_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA35_transition[i] = DFA.unpackEncodedString(DFA35_transitionS[i]);
        }
    }

    class DFA35 extends DFA {

        public DFA35(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 35;
            this.eot = DFA35_eot;
            this.eof = DFA35_eof;
            this.min = DFA35_min;
            this.max = DFA35_max;
            this.accept = DFA35_accept;
            this.special = DFA35_special;
            this.transition = DFA35_transition;
        }
        public String getDescription() {
            return "1:1: Tokens : ( T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | DOT | TRUE | FALSE | WS | CHAR_LITERAL | STRING_LITERAL | IDENT | LINE_COMMENT | ML_COMMENT | MULTI_LINE_STRING | NUM_INT | NUM_FLOAT );";
        }
    }
 

}